
//存放主要交互逻辑js代码
//JavaScript 模块化
var secKill = {
//    封装秒杀相关ajax的url
    URL : {
        now :function () {
            return '/secKill/time/now';
        },
        exposer : function (secKillId) {

            return '/secKill/'+secKillId+'/exposer';
        },
        execution : function (secKillId,md5) {
            return '/secKill/' + secKillId + '/' + md5 + '/execution';
        }
    },
    //    获取秒杀地址，控制现实逻辑，执行秒杀
    handleSecKill : function (secKillId,node,secKillBtn) {

        secKillBtn.show();
        $.post(secKill.URL.exposer(secKillId),{},function (result) {
            //在返回函数中，执行交互流程
            if (result && result['success']){
                var esposer = result['data'];
                if (esposer['exposed']){
                    //    开启秒杀
                    //    获取秒杀地址
                    var md5 = esposer['md5'];
                    var killUrl = secKill.URL.execution(secKillId,md5);
                    console.log("killUrl",killUrl);
                    //    绑定一次点击事件
                    secKillBtn.click(function () {
                        //    执行秒杀请求的操作
                        //    1、先禁用按钮
                        console.log("按钮"+1111);
                        $('#kill').attr({"disabled":"disabled"});
                        //    2、发送请求，执行秒杀
                        $.post(killUrl,{},function (result) {
                            if(result && result['success']){
                                var killResult = result['data'];
                                var state = killResult['state'];
                                var stateInfo = killResult['stateInfo'];
                                console.log("进入后"+2222);
                                //    3.显示秒杀结果
                                node.show();
                                node.html('<span class="label label-success">'+stateInfo+'</span>');
                            }
                        });
                    });
                }else{
                    //    未开启秒杀
                    var now = esposer['now'];
                    var start = esposer['start'];
                    var end = esposer['end'];
                    //重新计时
                    secKill.countDown(secKillId,now,start,end);
                }
            }
        });
    },
//    验证手机号
    validatePhone : function (phone) {
        if(phone && phone.length == 11 && !isNaN(phone)){
            return true;
        } else {
            return false;
        }
    },
    countDown : function (secKillId,nowTime,startTime,endTime) {
        var secKillBox = $('#secKill-box');
        var secKillbtn  = $('#kill');

        if(nowTime>endTime){
            //    秒杀结束
            secKillBox.html('秒杀结束！');
        }else if (nowTime<startTime){
            //    秒杀未开始，计时事件绑定
            var killTime = new Date(startTime+1000);
            console.log(killTime);
            secKillBox.countdown(killTime,function (event) {
                //    控制时间的格式
                var format = event.strftime('秒杀计时： %D天 %H时 %M分 %S秒');
                secKillBox.html(format);
                /*时间计时完后回调事件*/
            }).on('finish.countdown',function () {
                //    获取秒杀地址，控制现实逻辑，执行秒杀
                secKill.handleSecKill(secKillId,secKillBox,secKillbtn);
            });
        }else{
            //    秒杀开始
            secKillBox.html('秒杀已经开始！');
            secKill.handleSecKill(secKillId,secKillBox,secKillbtn);
        }
    },
//    详情页秒杀逻辑
    detail:{
        //    详情页初始化
        init : function (params) {
            //    手机验证和登录，计时交互
            //    规划我们的交互流程
            //    在cookie中查找手机号
            var killPhone = $.cookie('killPhone');

            //    验证手机号
            if(!secKill.validatePhone(killPhone)) {
                //    绑定手机
                //    控制输出
                var killPhoneModal = $('#killPhoneModal');
                killPhoneModal.modal({
                    //        显示弹出层
                    show: true,//显示弹出层
                    backdrop: 'static',//禁止位置关闭
                    keyboard: false//关闭键盘事件
                });
                $('#killPhoneBtn').click(function () {
                    var inputPhone = $('#killPhoneKey').val();
                    if (secKill.validatePhone(inputPhone)) {
                        //电话写入cookie
                        $.cookie('killPhone', inputPhone, {expires: 7, path: '/secKill'});
                        //  刷新页面
                        window.location.reload();
                    } else {
                        $('#killPhoneMessage').hide().html('<label class = "label label-danger">手机号错误！</label>').show(300);
                    }
                });
            }

            var killBtn = $('#kill');
            killBtn.hide();
            //    已登录
            //    计时交互
            var startTime = params['startTime'];
            var endTime = params['endTime'];
            var secKillId = params['secKillId'];
            console.log(startTime);
            $.get(secKill.URL.now(),{},function (result) {
                console.log(result);
                console.log(result['success']);
                console.log(result['data']);
                if (result && result['success']){
                    var nowTime = result['data'];
                    //    时间判断,计时交互
                    secKill.countDown(secKillId,nowTime,startTime,endTime);
                }else {
                    console.log('result:'+result);
                }
            });
        }
    }
}